namespace ConsoleApi.Models;

/// <summary>
/// 增强版天气数据
/// </summary>
public class EnhancedWeatherData
{
    public WeatherData BasicWeather { get; set; } = new();
    public AirQualityInfo AirQuality { get; set; } = new();
    public UVIndexInfo UVIndex { get; set; } = new();
    public LifeIndicesInfo LifeIndices { get; set; } = new();
    public WeatherTrendsInfo WeatherTrends { get; set; } = new();
    public List<WeatherAlertInfo> Alerts { get; set; } = new();
}

/// <summary>
/// 城市天气信息
/// </summary>
public class CityWeatherInfo
{
    public string City { get; set; } = string.Empty;
    public WeatherData WeatherData { get; set; } = new();
    public AirQualityInfo AirQuality { get; set; } = new();
    public LifeIndicesInfo LifeIndices { get; set; } = new();
}

/// <summary>
/// 空气质量信息
/// </summary>
public class AirQualityInfo
{
    public int AQI { get; set; }
    public string Level { get; set; } = string.Empty;
    public int PM25 { get; set; }
    public int PM10 { get; set; }
    public int NO2 { get; set; }
    public int SO2 { get; set; }
    public int CO { get; set; }
    public int O3 { get; set; }
}

/// <summary>
/// 紫外线指数信息
/// </summary>
public class UVIndexInfo
{
    public int Index { get; set; }
    public string Level { get; set; } = string.Empty;
    public string Risk { get; set; } = string.Empty;
    public string ProtectionAdvice { get; set; } = string.Empty;
}

/// <summary>
/// 生活指数信息
/// </summary>
public class LifeIndicesInfo
{
    public string Clothing { get; set; } = string.Empty;
    public string Exercise { get; set; } = string.Empty;
    public string Umbrella { get; set; } = string.Empty;
    public string CarWash { get; set; } = string.Empty;
    public string Comfort { get; set; } = string.Empty;
    public string Travel { get; set; } = string.Empty;
}

/// <summary>
/// 天气趋势信息
/// </summary>
public class WeatherTrendsInfo
{
    public string TemperatureTrend { get; set; } = string.Empty;
    public string HumidityTrend { get; set; } = string.Empty;
    public string WindSpeedTrend { get; set; } = string.Empty;
    public string ChangeAmplitude { get; set; } = string.Empty;
    public string PredictionAdvice { get; set; } = string.Empty;
}

/// <summary>
/// 天气预警信息
/// </summary>
public class WeatherAlertInfo
{
    public string Id { get; set; } = string.Empty;
    public string Level { get; set; } = string.Empty; // info, warning, danger
    public string Type { get; set; } = string.Empty;
    public string Title { get; set; } = string.Empty;
    public string Description { get; set; } = string.Empty;
    public string Location { get; set; } = string.Empty;
    public DateTime Time { get; set; }
    public DateTime ValidUntil { get; set; }
    public List<string> ProtectionAdvice { get; set; } = new();
} 